﻿using System.Collections.Generic;
using ZilLion.Service.WeChatMall.Domain.Entitys.AppInfo;
using ZilLion.Service.WeChatMall.Domain.Entitys.ShopInfo;

namespace ZilLion.Service.WeChatMall.Domain.Services.Interface
{
    public interface IShopInfoService
    {
        /// <summary>
        ///     获得当前APPID 下属门店
        /// </summary>
        /// <param name="appid"></param>
        /// <returns></returns>
        IList<ShopInfoDto> GetShopsByAppid(string appid);

        /// <summary>
        /// 获取门店信息
        /// </summary>
        /// <param name="shopid"></param>
        /// <param name="appid"></param>
        /// <returns></returns>
        ShopInfoDto GetShopById(long shopid);
        /// <summary>
        ///     保存微商城店铺信息
        /// </summary>
        /// <param name="basic"></param>
        /// <param name="appShopRelationShip"></param>
        /// <param name="shopSupports"></param>
        /// <returns></returns>
        ShopInfoDto SaveShopInfo(ShopBasicInfoEntity basic, AppShopRelationShipEntity appShopRelationShip = null,
            IList<ShopSupportInfoEntity> shopSupports = null);


        /// <summary>
        /// 删除店铺
        /// </summary>
        /// <param name="shopid"></param>
        void DeleteShop(long shopid);


        /// <summary>
        /// 批量保存门店下属货品关系
        /// </summary>
        /// <param name="list"></param>
        void SaveShopGsRelationShip(IList<ShopGsRelationShipEntity> list);
        /// <summary>
        /// 获取可导入的门店
        /// </summary>
        /// <param name="zlcompanykey"></param>
        /// <returns></returns>
        IList<OfflineShopEntity> GetImportableShops(string zlcompanykey);
        /// <summary>
        /// 批量导入门店
        /// </summary>
        /// <param name="shops"></param>
        /// <param name="zlcompanykey"></param>
        /// <param name="updater"></param>
        /// <param name="appid"></param>
        void ImportOfflineShops(IList<OfflineShopEntity> shops, string zlcompanykey, long updater, string appid);

    }
}